#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<string>
#include<vector>
#include<cmath>
#include<cstdio>
using namespace std;


class A :public vector<int> {
public:
    A(string s) {
        int n = s.size();
        for (int i = n - 1; i >= 0; i--) {
            if (s[i] == '.') {
                pos = n - 1 - i;
                continue;
            }
            this->push_back(s[i] - '0');
        }

        return;
    }

    void operator*=(int x) {
        for (int i = 0; i < size(); i++)at(i) *= x;
        process();
        return;
    }

    void about() {
        int kkk = at(pos - 1);
        for (int i = 0; i < pos; i++) {
            at(i) = 0;
        }
        if (kkk >= 5) {
            at(pos) += 1;
            process();
        }
        return;
    }

    void process() {
        for (int i = 0; i < size(); i++) {
            if (at(i) < 10)continue;
            if (i + 1 == size())this->push_back(0);
            at(i + 1) += at(i) / 10;
            at(i) %= 10;
        }
        while (size() > 1 && at(size() - 1) == 0)this->pop_back();
        return;
    }
    int pos;
};

ostream& operator<<(ostream& out, const A& a) {
    for (int i = a.size() - 1; i >= a.pos; i--) {
        out << a[i];
    }
    return out;
}

int main() {

    int n;
    string d;
    cin >> n >> d;
    A answer(d);
    while (n--) {
        answer *= 2;
    }

    answer.about();
    cout << answer << endl;
    return 0;
}